Skip to content

Conversation

@SeddikBellamine
Copy link
Contributor

@SeddikBellamine SeddikBellamine commented Jul 2, 2025

Migrate from Drone CI to GitHub Actions

Overview

This PR migrates the web3telegram-sdk repository from Drone CI to GitHub Actions while maintaining all existing functionality and adding new automated workflows.

New GitHub Actions Workflows

Core CI/CD Workflows

  • SDK CI (sdk-ci.yml): Comprehensive testing for SDK changes with concurrency control and path filtering
  • DApp CI (dapp-ci.yml): Testing workflow for dapp folder changes
  • Deployment DApp CI (deployment-dapp-ci.yml): Linting and formatting for deployment scripts

Release Management

  • Release Please (release-please.yml): Automated releases for SDK and DApp with semantic versioning
  • Conventional Commits (conventional-commits.yml): Enforces conventional commit format

Docker & Deployment

  • DApp Sconify (dapp-sconify.yml): Uses reusable workflow for SCONE containerization
  • DApp Deployment (dapp-deployment.yml): Automated deployment with SCONE fingerprint integration

NPM Operations

  • NPM Publish (npm-publish.yml): Uses reusable workflow for SDK publishing with manual dispatch

🔧 Key Improvements

Enhanced Testing

  • Updated test scripts for GitHub Actions compatibility
  • Fixed TypeScript compatibility issues (TEST_CHAIN export, NRLCAmount types)
  • Improved e2e test reliability with proper subgraph indexing waits
  • Enhanced test utilities with better error handling

Deployment Enhancements

  • Integrated SCONE containerization with deployment pipeline
  • Automated fingerprint extraction and contract deployment
  • Removed legacy Drone CI dependencies
  • Streamlined environment variable handling

Monorepo Support

  • Independent release management for SDK and DApp
  • Path-based workflow triggering
  • Concurrent job execution with proper cancellation

🗑️ Removed Components

  • Legacy Drone CI pipelines (sdk-default, dapp-default, dapp-deployment-default)
  • Drone-specific environment variables and configurations
  • Outdated test utilities and scripts

📋 Migration Checklist

  • Create GitHub Actions workflows
  • Update test scripts and utilities
  • Fix TypeScript compatibility issues
  • Implement release automation
  • Add Docker containerization
  • Set up deployment pipeline
  • Remove legacy Drone CI components
  • Update environment variables
  • Test all workflows

🔄 Backward Compatibility

  • All existing functionality preserved
  • Drone CI remains available for rollback if needed
  • No breaking changes to development workflow

🧪 Testing

  • All workflows tested and validated
  • E2E tests passing with improved reliability
  • Unit tests updated for GitHub Actions environment
  • Deployment pipeline verified

📝 Notes

  • GitHub Actions provides better integration with GitHub features
  • Improved visibility and debugging capabilities
  • Enhanced security with GitHub's built-in secrets management
  • Better support for monorepo workflows

- Add publish-npm-sdk.yml workflow using reusable workflow
- Support latest, nightly, and beta tag publishing
- Use iExecBlockchainComputing/github-actions-workflows v1.5.0
- Configure for @iexec/web3telegram package scope
- Enable manual dispatch with tag selection
- Update test-utils.ts to remove Drone-specific logic and use localhost URLs
- Simplify prepare-test-env.js to only create .env file
- Update prepare-bellecour-fork-for-tests.js to work with GitHub Actions
- Add sdk-ci.yml workflow for automated testing on push
- Add workflow to validate conventional commit format on pull requests
- Ensures consistent commit message formatting across the repository
- Add release-please configuration for monorepo (SDK + DApp)
- Configure separate version tracking for both packages
- Set up automated release workflow using iExec reusable workflow
- Enable independent releases for SDK and DApp based on conventional commits
- Export TEST_CHAIN constant to fix import errors in test files
- Resolves TypeScript compilation errors in CI check-types step
- Convert requiredStake to string when calling iexec.account.deposit()
- Fixes TypeScript error: BigNumberish not assignable to NRLCAmount
- NRLCAmount expects number | string | BN, not bigint
- Add dapp-deploy.yml workflow with sconify and deployment steps
- Update deployment-dapp scripts to work with GitHub Actions
- Replace DRONE_DEPLOY_TO with DEPLOY_ENVIRONMENT
- Add support for pre-computed checksums from sconify workflow
- Remove legacy Drone CI support from deployment scripts
- Configure workflow to use public Docker registry and production sconify images
@SeddikBellamine SeddikBellamine force-pushed the migrate-to-github-actions branch from fe0ea01 to 6f95cce Compare July 9, 2025 08:50
@SeddikBellamine SeddikBellamine merged commit 01f2c10 into main Jul 9, 2025
5 checks passed
@SeddikBellamine SeddikBellamine deleted the migrate-to-github-actions branch July 9, 2025 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants